[iOS] デバッグ中に変数の値を変更する
はじめに
いろいろと iOS アプリ開発を勉強中の諏訪です。
今回はデバッグ時に特定のブレークポイントを指定した場所で変数の値を変更する方法を調べたのでメモしておきます。
何かの処理中にここの値が変わったら、どう動くかという確認をしたいときに便利です。
デバッグ中に変数の値を変更する
今回は以下のコードで試したいと思います。Button をタップすると Label の text に value を代入するというシンプルなコードです。この value の値をデバッグ中に変更します。
- (IBAction)button:(id)sender { NSString *value = @"Button clicked."; _label.text = value; }
1.ブレークポイントを設定する
ブレークポイントを設定するには行番号をクリックします。すると下図のように青色に変わります。
この状態でデバッグし、Button をタップするとタップすると処理がブレークポイントで止まると思います。
2.lldb コマンドを使う
ブレークポイントで止めていると、下図のように DebugArea のコンソールに (lldb) と表示されると思います。
ここでブレークポイント中に lldb コマンドを実行すると、変数を変更するなど様々なことができるようになります。今回は value の値を変更したいので、下記のように入力します。
po value = @"hoge"
これで return すると書き換わります。ブレークポイントからまた処理を進めさせたいときは以下のコマンドを入力します。
c
実機を見てみると、変更された値が代入され Label に hoge と表示されます。
まとめ
今回は lldb コマンドのうち一番使いそうなコマンドを紹介しましたが、他にもいろいろあります(ブレークポイントを設定したり、一覧したり…)。ぜひ活用していきたいですね。